/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jforum.DAO;

import jforum.domain.Entity;
import java.sql.SQLException;
import java.util.List;

/**
 *
 * @author Вадим
 */
public interface BasicDAO<T extends Entity > {

    // Загружает объект с указанным id из БД
   T Load(int id) throws SQLException;

   // Загружает объект с по указанным ограничениямиз БД.
   T LoadOrCreate(int id) throws SQLException;

   // Загружает все имеющиеся в БД объекты
   List<T> LoadList() throws SQLException;

   // Загружает страницу объектов.
   List<T> LoadPage(int startRowIndex, int maximumRows);

   // Сохраняет объект
   void Save(T obj) throws SQLException;

   // Обновляет объект
   void Update(T obj) throws SQLException;

   // Удаляет объект
   void Delete(T obj) throws SQLException;

   // Удаляет все объекты
   void DeleteAll() throws SQLException;

   // Возвращает количество объектов в БД
   int GetCount() throws SQLException;

}
